/*
****************************************************************************************************************
*= = 版权信息：Copyright (C) 356 - 999. Ombres Industry Empiral. All rights reserved.
*= = 文件名称：Ginkgo.h
*= = 功能描述：风之谷配置管理声明主文件
*= = 编写人员：Carlyon W. Tung
****************************************************************************************************************
*/


#ifndef __GINKGO_H__
#define __GINKGO_H__


#include <Hyacinth.h>

#include <tinystr.h>
#include <tinyxml.h>


#if defined(GINKGO_LIBRARY)
#define GINKGO_LIBRARY_INTERFACE O_DECL_EXPORT
#else
#define GINKGO_LIBRARY_INTERFACE O_DECL_IMPORT
#endif

namespace Ginkgo {
    //
}

using namespace Ginkgo;
using namespace std;


template class GINKGO_LIBRARY_INTERFACE OOrality<std::string>;

class GINKGO_LIBRARY_INTERFACE OGinkgo : public OObject
{
public:
    OGinkgo();
    ~OGinkgo();

public:
    // TODO

private:
    // TODO

public:
    // TODO

private:
    // TODO
};

class GINKGO_LIBRARY_INTERFACE OGinkgoHubris : public OGinkgo
{
public:
    OGinkgoHubris();
    ~OGinkgoHubris();

public:
    // TODO

private:
    // TODO

public:
    // TODO

private:
    // TODO
};

class GINKGO_LIBRARY_INTERFACE OGinkgoPostgreSQL : public OGinkgo
{
public:
    OGinkgoPostgreSQL();
    ~OGinkgoPostgreSQL();

public:
    bool set_config(std::string& xml);

    OOrality<std::string> get_hostaddress(void);
    int get_port(void);
    OOrality<std::string> get_dbname(void);
    OOrality<std::string> get_user(void);
    OOrality<std::string> get_password(void);
    OOrality<std::string> get_version(void);

private:
    // TODO

public:
    TiXmlDocument pgsql_conf_xml;

private:
    OOrality<std::string> m_hostaddress;
    OOrality<std::string> m_dbname;
    OOrality<std::string> m_user;
    OOrality<std::string> m_password;
    OOrality<std::string> m_version;
};


#endif // End of __GINKGO_H__


/*
****************************************************************************************************************
*= = 文件结束
****************************************************************************************************************
*/


